package com.csun.cmny.provider.service;

import com.csun.cmny.base.dto.LoginAuthDto;
import com.csun.cmny.core.support.IService;
import com.csun.cmny.provider.model.domain.DmcWatchSafetyRange;
import com.csun.cmny.provider.model.dto.watch.WatchSafetyRangeDto;
import com.csun.cmny.provider.model.dto.watch.WatchSafetyRangePageQuery;
import com.csun.cmny.provider.model.vo.watch.DmcWatchSafetyRangeVo;
import com.github.pagehelper.PageInfo;

/**
 * @Auther: chisj chisj@foxmal.com
 * @Date: 2019-01-24 14:56
 * @Description: the interface dmc watch safety range service
 */
public interface DmcWatchSafetyRangeService extends IService<DmcWatchSafetyRange> {

    /**
     * query watch safety range list with page
     *
     * @param watchSafetyRangePageQuery watch safety range query
     *
     * @return  the page info.
     */
    PageInfo queryWatchSafetyRangeListWithPage(WatchSafetyRangePageQuery watchSafetyRangePageQuery);

    /**
     * add watch safety range
     *
     * @param watchSafetyRangeDto   watch safety range dto
     * @param loginAuthDto          login auth dto
     *
     * @return  the int.
     */
    Integer addWatchSafetyRange(WatchSafetyRangeDto watchSafetyRangeDto, LoginAuthDto loginAuthDto);

    /**
     * edit watch safety range
     *
     * @param watchSafetyRangeDto   watch safety range dto
     * @param loginAuthDto          login auth dto
     *
     * @return  the int.
     */

    Integer editWatchSafetyRange(WatchSafetyRangeDto watchSafetyRangeDto, LoginAuthDto loginAuthDto);

    /**
     * delete watch safety range by id
     *
     * @param id    id
     *
     * @return  the int.
     */
    Integer deleteWatchSafetyRangeById(Long id);

    /**
     * get watch safety range by id
     *
     * @param id    id
     *
     * @return  the int.
     */
    DmcWatchSafetyRangeVo getWatchSafetyRangeById(Long id);

    /**
     * delete watch safety range by device id
     *
     * @param deviceId  device id
     *
     * @return  the int.
     */
    Integer deleteWatchSafetyRangeByDeviceId(Long deviceId);

    /**
     * romve dmc safete range
     *
     * @param deviceId  device id
     *
     * @return  the int.
     */
    Integer removeDmcSafetyRange(Long deviceId);
}
